package thread;

public class Daemon_Demo {
    //说明： 守护线程一般为后台线程。
// 例如： 游戏的背景音乐
//      1. 玩游戏是前台线程 , 背景音乐是后台线程
//      2. 一般把后台播放的背景音乐线程设置为守护线程
//      3. 当前台的线程结束时, 后台的背景音乐守护线程自动结束,前台线程不结束，后台线程也一直不结束
    //注意： setDaemon(true)方法必须在启动线程前调用，否则抛出IllegalThreadStateException异常。

    //只有当线程是新建状态时，才能调用setDaemon()方法，也就是设置守护线程
    //当线程是就绪状态时，不能调用setDaemon()方法，否则会抛出IllegalThreadStateException异常。
    public static void main(String[] args) {
        Music music = new Music();
        Thread t1 = new Thread(music);
        Thread t2 = new Thread(() -> {
            for (int i = 0; i < 10; i++){
                System.out.println("游戏："+i);
            }
        });
        t1.setDaemon(true);
        t1.start();
        t2.start();

    }
}
class Music implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 100; i++){
            System.out.println("播放音乐："+i);
        }
    }
}
